package com.woniuxy.lab.woniu_lab.service.impl;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.woniuxy.lab.woniu_lab.exception.WebException;
import com.woniuxy.lab.woniu_lab.exception.WebExceptionCode;
import com.woniuxy.lab.woniu_lab.model.RangeUser;
import com.woniuxy.lab.woniu_lab.dao.RangeUserDao;
import com.woniuxy.lab.woniu_lab.model.User;
import com.woniuxy.lab.woniu_lab.service.RangeUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.woniuxy.lab.woniu_lab.service.UserService;
import com.woniuxy.lab.woniu_lab.util.JwtUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * <p>
 * 靶场-用户关联表 服务实现类
 * </p>
 *
 * @author Silas
 * @since 2023-03-15
 */
@Service
public class RangeUserServiceImpl extends ServiceImpl<RangeUserDao, RangeUser> implements RangeUserService {

    @Resource
    private UserService userService;

    @Override
    public Boolean checkPay(Integer rangeId) {
        Integer userId = JwtUtil.getUserIdFromReq();
        User user = userService.getById(userId);
        if (user == null) throw new WebException(WebExceptionCode.USER_IS_NOT_EXISTS);
        if (user.getVip()==null) return false;
        if (user.getVip().equals("VIP") || user.getVip().equals("SVIP")) return true;
        RangeUser one = getOne(new QueryWrapper<RangeUser>().eq("range_id", rangeId).eq("user_id", userId));
        return !ObjectUtil.isEmpty(one);
    }
}
